1
SIMT実行モデルとワープ分割
AI032Lesson 6
00:00

この SIMT(単一命令、多数スレッド) モデルはGPUアーキテクチャのコアです。個々のスレッドをプログラムする一方で、ハードウェアはそれらを2段階の階層構造である「グリッド」と「ブロック」に統合します。 グリッド および ブロック。効率を最大化するために、ハードウェアはこれらのブロックをさらに32スレッド単位に分割し、これを ワープと呼びます。

1. SIMT と SIMD の違い

CPUのSIMD(SSE/AVXなど)ではデータをレジスタに手動でパックする必要がありますが、SIMTではスレッドが独立しているように見えます。ハードウェアは自動的にスレッドをワープにグループ化し、全32スレッドに対して1つの命令をフェッチして同期実行します。

2. 一次元化ルール

プログラマーは threadIdx.x, y, z 論理処理に使用しますが、ハードウェアはこれをスケジューリング用の1次元シーケンスに変換します:

インデックス = x + (y × blockDim.x) + (z × blockDim.x × blockDim.y)
2次元ブロック(8 × 8)ワープ0:ID 0〜31ワープ1:ID 32〜63

なぜなら x次元 x次元は最も速く変化するインデックスであり、連続する threadIdx.x 値を持つスレッドは通常同じワープに割り当てられ、これは メモリコアリシングと呼びます。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>